Génie logiciel

INFORMATICIENS

Affirmation d'une fille du Cigref. Notes vers 1987

L'informatique va devenir transparente, on n'auraplus besoin d'informaticiens.

Avec les langages à objets, les produits ré-utilisables, les packages.

Un PDG pourra faire directemnt le SI global.

Ma réponse :

je ne vois pas cela se faire pour l'instant

échec des L4G, langages à objets outils pour pros

la montée de complexité exige des professionnels de ik

l'hypothèse sous-jacente: ik n'est rien, conception n'est rien

je crois que le réseau à lui seul est compliqué

le besoin d'informaticiens se réduit du fait de

- normalisation, windows

- et donc industrialisation

- et externalisation.

Ce n'est pas pour autant de la transparence.

*note en 7/92. SAP à Opio m'a fait changer de point de vue. Sur l'externalisation, moins sur la transparence

LOGICIEL PROGRAMMATION

Le soft devrait faire le gros des CA. Mais en attendant c'est le hard qu'on voit.

Sur ce qu'est fondamentalement la programmation. Relation avec la motricité de l'autre. Ce qu'il fait "pendant que je ne suis pas là".

Le problème ne se pose pas avec un tableau qui reste fixe, mais dès qu'il y a des automatismes.

Longueur de programmation. Voir le texte d'Hofstadter. Ce problème de longueur est essentiel. Il n'y a pas de "soft" pour une machine trop simple.

LANGAGES

Basic

Extensions: Rol pour les automatismes (Gixi).

Nodal du Cern pour la répartition.

Programmer: écrire une séquence d'instructions.

créer un processeur autonome. Commence avec structures de contrôle. If puis les constructions au tour (then else, while, for...) puis la récursivité.

Abstraction, conservation, généralités

agents NewWave, scripts Hypercard

Dans l'avenir. Accès aux dictionnaires et normes linguistiques. Renvoie aux savoirs de la machine.

PARADOXE DE L''EVOLUTION

D'une part il est de plus en plus facile de programmer, avec de meilleurs environnements, une machine plus rapide, plus transparente. On peut être plus près de la machine (disposer du clavier notamment), et aussi plus près des atomes logiques.

D'autre part les langages de haut niveau éloignent de la machine, sont orientés application.

Problème des structures mentales.

Relation avec le "modèle"

Abstraction

Montée de la complexité des applications et des exigences de performance.

...

Deux tendances, notamment à propos des LOO

Meyer, abstraction.

Moi, Smalltalk: présentation concrète.

Une modélisation naturelle, ergonomique, proche de la langue naturelle

- d'une part renvoie vers le noumène, le haut niveau

- d'autre part traduit pour faire fonctionner le processeur

RELATION FORMEL/INFORMEL

problème/calcul

la frontière est d'autant moins simple qu'il y a, de part et d'autre, des espaces considérables, des modèles de plus en plus puissants.

la machine devient de moins en moins révélatrice, parce qu'étant elle même puissante, elle n'exige plus une formalisation complète. en répondant trop bien à mes désirs, elle ne m'oblige plus à construire.

L'essentiel est le problème de la rationalité limité: ce n'est pas notre "intelligence" au sens général ou métaphysique, mais dans les limites de l'interface

Le paradoxe de l'homme, ce qui le rend intéressant, c'est qu'il a atteint au niveau de la rationalité (discursive) un niveau quantitatif suffisant pour SE percevoir et delà pour agir sur soi et sur les autres

Gérard Novac LITP 43 36 25 25. A fait des études sur Logo, Lisp, écoles communales.

...

programmer/concevoir

programmer/spécifier

procédural/déclaratif. deux formes de mélange

d'énergie.

motricité de l'éditeur/éditeur prédictif et programmation

...

la conception retrouve la dualité abstrait/homme.

Le désir. Modélisation. Puis la machine prend l'initiative. Maximise le sens.

En termes de L, pour que le système accepte de se laisser déterminer, il faut une urgence absolue. Le déterminisme est quelque chose d'énergétique. En quelque sorte le parient n'a plus d'être, puisqu'il est totalement soumis à l'agent.

Intérêt pour le système: plutôt H ou plutôt P.

L'IA anthropomorphisante est la plus payante à long terme. Cependant la montée directe le long de cette voie ne sera pas la plus payante à moyen terme (20 ans) en fait elle est trop abstraite et inquiétante. On va donc faire beaucoup et beaucoup d''articles... et des appareils excitants: gants, lunette d'orientation, tactile, capteurs... et assez vite peut-être vision de l'utilisateur par la machine.

Une caméra, ce n'est pas si cher.

PROGRAMMATION ET IMAGE

Programmation purement par l'image. Il y a dessin.

Icono 122.

Le progrès des interfaces devrait privilégier l'oeil. La vision par la machine. Les doigts sont le moyen d'expression conscient le plus riche, rapide. Le clavier est meilleur que d'autres dispositifs: précis, beaucoup de bits (log2 60). On peut imaginer 100 bits/sec au clavier.

METHODES DE CONCEPTION

Méthode Berger: chercher le coeur critique. étoffer, grossier. le chemin-clé puis élargissement du chemin.

Sinon, on est obligé de réfléchir.

Conception à partir de soi. Me décrire, puis plus précisément décrire mes besoins. Que la machine s'en souvienne. Programmation orientée sujet.

Modéliser mes préférences. De là, progressivement, mes désirs, mes ordres.

LE PROGRAMMEUR

Sa spécificité. Disparaîtra-t-il?

Redorer son blason: comparaison avec l'auteur, l'ingénieur, le journaliste.

Sa dévalorisation: on ne signe pas un programme, sauf de très grands (Richtie, Atkinson)

AVEC HYPERTEXTE, HYPERCARD, HYPERDOCUMENT...

Entre le programmeur et l'utilisateur: l'auteur

L'apparition de nouveaux environnements logiciels comme Hypercard d'Apple et l'Hyperdocument d'IBM mettent en avant un rôle spécifique dans la conception d'applications: l'auteur.

La brillante démonstration de Renault à Equip'Auto, avec un système très convivial d'aide aux mécaniciens (LMI 2/11/87 p. 27) fait apparaître un paradoxe: Bernard Pargamin, réalisateur de cette application complexe, se félicite de ne pas avoir écrit une ligne de code

Avec Multiplan, et d'autres tableurs, combien de cadres écrivent aujourd'hui des "systèmes de contrôle budgétaire" élaborés, sans jamais pour autant écrire une vraie ligne de programme. On voit même des secrétaires monter de petites applications de gestion avec leur traitement de texte, pour peu qu'il dispose de quelques opérations arithmétiques et d'un moyen d'enchaîner les actions dans des "macros".

Comment qualifier ces nouveaux acteurs de l'informatique. Des utilisateurs? C'est trop peu donner à des gens qui ont passé beaucoup de temps à développer des outils pour d'autres, qui en font parfois leur profession, voire même passent au stade industriel en en faisant de véritables produits. Des informaticiens?

Ils n'en ont ni la prétention ni même l'envie. Disons plutôt des "auteurs". L'EAO avait déjà montré la voie, et les créateurs d'Hypercard en explicitent le rôle, entre le simple utilisateur (browser) et le programmeur. Et le cogniticien même, joue un peu pour l'expert le "nègre" qui, en littérature, prête sa plume à une personnalité qui n'a pas le temps d'écrire.

Dans l'entreprise, l'auteur ne va-t-il pas remplacer l'informaticien? Avec la profusion des logiciels intégrés, des infocentres, L4G, générateurs super-faciles de systèmes experts... à quoi bon des programmeurs. D'autant que, comme dans le cas de Renault avec Owl, on peut trouver chez les SSII les compétences pointues qui restent nécessaires de temps à autre.

Ne nous inquiétons pas trop pour le programmeur, dont l'avenir est remis en cause... depuis les années 60 (voir par exemple 0.1. Mensuel de mars 1967, où l'on commence à découvrir que Cobol n'est pas vraiment fait pour les utilisateurs, ou Le Monde du 9 avril 1968 titrant "Les programmeurs ont devant eux un avenir incertain").

L'auteur, d'ailleurs, n'est qu'une des nouvelles fonctions que fait apparaître l'élargissement de la palette informatique (voir "nouveaux métiers, nouvelles organisation",

LMI du 14/9/87). Il prend sa place aux côtés de l'architecte de systèmes, de l'administrateur de données ou le responsable réseaux. Le rôle d'auteur s'arrête au delà du "livre", du "stack' d'Hypercard, c'est à dire dès qu'il faut organiser la coopération au delà des individus et de la petite équipe.

Auteur... un mot trop large, sans doute, allant de Balzac à l'initiateur... d'une note de service Il correspond pourtant à des situations bien réelles, qu'il faudra reconnaître et préciser pour qu'elles soient efficaces. Un nouveau marché pour les formateurs?

Pierre Berger LMI 22/11/87

REALISATEUR/ASSEMBLEUR

réalisateur: petits composants. Le projet contient ses moyens

assembleur: le projet est contenu dans ses moyens il consomme une partie des ressources l'évolution devrait conduire à une montée de l'assembleur, à partir de macro-composants puisque le capital d'applications existantes comme d'outils existants augmente. cas typique. Newwave et ses outils d'encapsulation. Alors qu'Hypercard serait plutôt orienté réalisation en repartant du détail. Cependant on peut créer des liens à partir des stacks existant.

En Unix, réponse par les pipes. finalement, les deux se mélangent. Un utilisateur a plusieurs ressources, qui sont partagées les problèmes numériques sont très différents selon que l' "utilisateur" est un homme ou un service

icono. 239

REALISATION PAR MACRO-COMPOSANTS

Acquisition des données/les valeurs-objectifs

Acquisition des données:

- catalogue de l'offre externe

- système existant

- ressources internes: base de données, programme, hommes, locaux

Par rapport aux valeurs, un certain nombre d'écarts vont apparaître. En quelque sorte la différence de potentiel qui fonde à la fois le besoin et la possibilité d'agir.

Il y a des limites à ma perception du donné.

Les macro-composants sont connus par leur spécification.

Le macro-composant parfait a un coût nul, une spécification très simple, mais rend beaucoup de services.

La qualité des interfaces du macro-composant est essentielle.

Il faut peu de macro-composants pour faire un système complet. Et peu de compétences.

Une caractéristique d'un (bon) macro-composant, c'est sa grande richesse interne par rapport à la simplicité de ses interfaces.

Il y a un certain gâchis, car on va sacrifier ou au moins sous-utilise une partie de la complexité interne pour gagner en complexité externe.

Distinguer une double complexité externe:

- complexité de l'interface de commande

- complexité de l'interface sensori/motrice, c'est à dire des liaisons du système avec l'extérieur indépendamment de l'opérateur. en principe on peut indéfiniment accroitre le sensoriel sans inconvénient (autre que les coûts) par contre si la motricité est trop forte par rapport au sensoriel+ la commande, c'est dangereux.

Les valeurs sont définies par des cahiers des charges et plus ou moins explicitement par la demande des utilisateurs.

IL S'AGIT DE RELIER TOUT CELA COMMENT RECUPERER CE QUI A ETE MAL FAIT

re-conception du système d'information

désassemblage/réassemblage

reconstituer à partir de l'existant ce qu'on voulait faire. L'intention derrière la réalisation défaillante. utiliser la réalisation elle-même et ce que l'on sait du contexte. la réalisation alors n'est que l'expression d'un cas concret du problème général.

SUR LA PROGRAMMATION STRUCTUREE

L'erreur souvent commise, et par Descartes lui-même, est de considérer l'opération de séparation, de division du problème en problèmes plus petits, comme neutre, comme ne changeant pas le problème.

Or toute séparation apporte une certaine détermination, un premier bit en quelque sorte, d'information. On a déjà décidé un peu, modélisé un peu, quand on a dit que le problème pouvait se décomposer d'une certaine manière.

Dans le monde de l'information parfaite, cela n'a en principe pas d'importance. L'information parfaite est parfaitement décomposable. Mais, dans le monde réel, toute détermination a une portée énergétique. Et, même dans l'information parfaite, cette notion de décomposition fait apparaître l'existence au moins implicite de méta-bits donnant la structure.

De cet apport d'information, mais aussi de cette réduction, viendra le fait que peu à peu on arrivera à quelque chose de programmable.

Dans la programmation structurée, on ne s'intéresse pas tant à cet effet réducteur, et encore moins à ses dangers ou à ses limites, parce que l'on considère implicitement que le problème a résoudre est modélisable, est isomorphe à l'information pure. Il n'y aurait donc pas de perte d'information, ex parte objectif, mais simplement élimination du flou dans la tête du programmeur.

CONCEPTION ET REDONDANCE

Valider (progressivement) la relation entre le produit réalisé et le désir.

Recherche d'écarts, donc redondance, soit entre

- programme/ jeu d'essais avec résultat

- spécification abstraite/programme

- programme/invariant

ou en mode interactif, jeu progressif des demandes de l'utilisateur et des propositions de la machine

CASE. GENIE LOGICIEL

know what you want

pull back the thinking

error detection

as far back as possible in the design process

and products life cycles

associated concepts:

réfléchir avant d'agir

mesure 20 fois, ne couper qu'une

top down

I would add:

description as refined as possible of the environment, people etc.

as they will be on delivery time

method is both

- a general route

- a model route

- an optimal route

representations in Case.

clear/aesthetics

logic

groupware/meetings

software maintenance is largely a visibility program.

how to talk about wysiwyg in an abstract and very general world?

case and communication

reconstitute the intention

//reverse engineering

military foe intention searching

communicate to the machine

take ease/part/lead with the machine

begin always at intermaidate level

then deeper

=METHODOLOGIE

I assume that the analysis is in fact permanent analysis files are kept up to date then technological watch from one side application wath from the other one and permanent engineering (not maintenance) in the middle plus monitoring and evaluation of the existing system in some way, once a company has been more or less globally computerized, every computer work is maintenance. unfortunately, this term has negative connotations. evolution will go along with the firm evolution. strategic computing is that in some way

PCTE

Program control Tool Environment

Project?

plate-forme théorique, base de données objets connus, Unix.

c'est la norme qui a donné naissance à Emeraude

...

Un et multiple

si programme, unique, sauf Cern

développemnet, répétitif, 1 to 1

unique hic et nunc

répétitif dans l'espace, dans le temps invariant

dégager (analyse)/ré-engager (application)

Maintenance du logiciel

nouvelles possibilités technologiques

revamping

changer un poste, un serveur, un réseau

>>>flux technologique

<<<flux des besoins

avoir en permanence une visibilité de l'existant et des objectifs à atteindre. en quelque sorte, pas de tunnel de dévelopement

analyse permanente reverse/forward

pendant que le système est opérationnel (niveau 3-4), on continue d'en faire évoluer la description (niveau 4-5), en ménageant les transitoires

situation permanente de prototypage avec des couches basses en parties stabilisées (composants réutilisables)

=EDITOR

from text editor

to "object" editor (in OO programming envir.t)

to "object" implementing (real, at least in R5)

editor is interaction

with some durability of the action

predictive editor stemps partly from the fact that the object (e.g. text)

has it's own coherence and struggles to live and to live correctly

as soon as it has got enough momentum

it does not wait for my next development stroke